#ifndef DEFS_H_
#define DEFS_H_

#define	AIR_MAX			3
#define	FLIGHT_MAX		3
#define	DAYS			7
#define	DAY_MAX			3
#define	NOT_A_DAY		-1
#define WEEKDAYS_MAX	20
#define DEPARTURE_MAX	6
#define	FTIME_MAX		6
#define	PRIO_MAX		3
#define	AIRARGS			3
#define	FLIGHTARGS		8
#define	LAT_MIN			-90.0
#define	LAT_MAX			90.0
#define	LNG_MIN			-180.0
#define	LNG_MAX			180.0
#define EPSILON			0.0000001

/* Definicion de constante para indicar que la lat y lng no debe ser verificada */

#define	IGNR_LAT_LNG	200
#define	PRIORITIES		3
#define	FN_ERROR		-2
#define	PATHERROR		-3
#define	DAY_MINUTES		24 * 60
#define	MULTIPLIER		-1664117991L

/* Definicion de MACROS */

/* Macro que comprueba la validez de un puntero */
#define	Precondicion(x)		x == NULL

/* Definicion del tipo de dato de la hora de despegue */
typedef	char  horaT;
/* Definicion del tipo de dato de la duracion de un vuelo */
typedef char  airtimeT;
/* Definicion del tipo de dato de los dias que sale el vuelo */
typedef char  weekdaysT;

/* Definicion de tipos de dato usado por varios de los ADT */

typedef enum {REPLACE = 0, APPEND} insT;
typedef enum {FT = 1, PR, TT} prioT;
typedef enum {PLAIN = 0, KML} fmtT;
typedef	FILE * fd;

#endif /*DEFS_H_*/
